#ifndef __BASE_PROPERTIES_H__
#define __BASE_PROPERTIES_H__

#include <string>

namespace verema
{

/**
 * \class Base_Properties
 *
 * \brief Abstract base class
 */
class Base_Properties
{
private:
	int _id;
	std::string _name;
	std::string _description;

public:
	Base_Properties()
	: _id(-1)
	, _name("")
	, _description("")
	{ }

	Base_Properties(int id_, std::string &name_, std::string &description_)
	: _id(id_)
	, _name(name_)
	, _description(description_)
	{ }

	const int id() { return _id; }
	const std::string name() { return _name; }
	const std::string description() { return _description; }

	void id(int id_) { _id = id_; }
	void name(const std::string &name_) { _name = name_; }
	void description(const std::string &description_) { _description = description_; }

	~Base_Properties()
	{ }
};

} // namespace verema

#endif // __BASE_PROPERTIES_H__
